Companies can use servers to provide services to remote computers (e.g., online services) through interfaces on the remote computers. For example, a user can access the services by loading a webpage on a local computer that interfaces with the servers. The webpage can include a number of controls, such as buttons, widgets, menu items, etc. that allow the user to access and interact with the remotely-located server(s) to access the full-range of services provided by the servers. As another example, the user can access the services by loading a program or other executable on the user's computer that is configured to interact with the services provided by the remotely-located servers. The executable can be similar to the webpage—the executable generates a graphical user interface (GUI) with various controls that allow the user to invoke the features of the service provided by the remote servers.
With the explosion of smart phones, personal digital assistants, tablets, and other mobile devices, the processing and display capabilities of these devices are often powerful enough to run similar executables on the mobile devices that can interface with the remote servers. However, such programs or executables often consume a large amount of the mobile device's processing power, memory, etc., causing the mobile device's performance to decrease. Further, many of these programs can not be run on earlier-model mobile devices, which do not have sufficient processing power.